/*
 * 描述： <描述>
 * 修改人： rain
 * 修改时间： 2016年01月20日
 * 项目： rainhy-cores-webcore
 */
package com.rainhy.incrementer.context;

import javax.sql.DataSource;

import org.springframework.beans.BeansException;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;

/**
 * 
 * 自增长器容器的配置器
 * 
 * @author rain
 * @version [版本号, 2016年1月21日]
 * @see [相关类/方法]
 * @since [产品/模块版本]
 */
public class IncrementerContextConfigurator implements InitializingBean, ApplicationContextAware {
    
    /** 缓存长度 */
    private int incrementerCacheSize = 10;
    
    /** 自增长类型 */
    private String incrementerType = "rainhy.webcore.incrementer.type.default";
    
    /** 自增长起始值 */
    private int incrementerStartValue = 10000;
    
    /** 自增长生产者类型 */
    private String incrementerProducerType = "default";
    
    /** 数据源 */
    private DataSource dataSource;
    
    /** spring 容器 */
    private ApplicationContext applicationContext;
    
    @Override
    public void afterPropertiesSet() throws Exception {
    }
    
    /** spring 容器 */
    public ApplicationContext getApplicationContext() {
        return applicationContext;
    }
    
    /** 数据源 */
    public DataSource getDataSource() {
        return dataSource;
    }
    
    /** 缓存长度 */
    public int getIncrementerCacheSize() {
        return incrementerCacheSize;
    }
    
    /** 自增长生产者类型 */
    public String getIncrementerProducerType() {
        return incrementerProducerType;
    }
    
    /** 自增长起始值 */
    public int getIncrementerStartValue() {
        return incrementerStartValue;
    }
    
    /** 自增长类型 */
    public String getIncrementerType() {
        return incrementerType;
    }
    
    /** spring 容器 */
    @Override
    public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
        this.applicationContext = applicationContext;
    }
    
    /** 数据源 */
    public void setDataSource(DataSource dataSource) {
        this.dataSource = dataSource;
    }
    
    /** 缓存长度 */
    public void setIncrementerCacheSize(int incrementerCacheSize) {
        this.incrementerCacheSize = incrementerCacheSize;
    }
    
    /** 自增长生产者类型 */
    public void setIncrementerProducerType(String incrementerProducerType) {
        this.incrementerProducerType = incrementerProducerType;
    }
    
    /** 自增长起始值 */
    public void setIncrementerStartValue(int incrementerStartValue) {
        this.incrementerStartValue = incrementerStartValue;
    }
    
    /** 自增长类型 */
    public void setIncrementerType(String incrementerType) {
        this.incrementerType = incrementerType;
    }
    
}